home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 5 / The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO / amiga / muclc125.lha / MUI_Calc.doc next >
Text File  |  1994-02-22  |  8KB  |  182 lines

  1. MUI Calc 1.25 by Robert Poole
  2.  
  3. 1. What is it?
  4.  
  5. MUI Calc is a calculator program for the Workbench (or other public
  6. screen) that utilizes Stefan Stuntz's Magic User Interface (or MUI
  7. for short).  It's an RPN calculator with a stack shown in a listview
  8. gadget which can be as deep as available memory.
  9.  
  10. Why another calculator program?
  11.  
  12. (1) The one that comes with Workbench is simplistic.
  13.  
  14. (2) IntuiCalc, the replacement of choice, causes severe Enforcer
  15.     hits.*
  16.  
  17. (3) I needed to teach myself some basic features of MUI programming.
  18.  
  19. (4) MCalc 1.1, also known as MuiProCalc 1.1, is an atrocious example of
  20.     MUI programming.  I felt obligated to offer a much improved version of
  21.     my own program as an alternative to MuiProCalc.**  I think you'll find
  22.     the interface of my program to be much less arcane and confusing.
  23.  
  24. * Since I first released MUI Calc 1.0, the author of IntuiCalc came out
  25. with an "IntuiCalc-MUI," which is functionally identical to the original
  26. IntuiCalc but uses MUI for the user interface.  I can't find any Enforcer
  27. hits in the new program.  Still, I prefer this style of calculator to the
  28. kind that IntuiCalc offers.  The original version of IntuiCalc-MUI had a
  29. bug in his interface which made it impossible to enter the digit '8'
  30. from the keyboard!  This has been fixed in IntuiCalc-MUI 1.1.  I still
  31. don't like the interface for a number of reasons, but this is mostly
  32. personal bias, tempered with my understanding of GUI design.
  33.  
  34. ** I find it amusing that there was an explosion of calculator programs
  35. after I released MUI Calc 1.0.  I also wonder at the author of
  36. MuiProCalc 1.1, who named the archive MCalc11.lha, so similar to the
  37. name of the Aminet archive of MUI Calc 1.0.  Coincidence?  You be the
  38. judge.  At any rate, I have bumped my revision number past 1.2 to avoid
  39. any confusion with MuiProCalc.  At any rate, MCalc 1.3 appeared on Aminet
  40. recently, and I tried it out.  It still stinks.  I was tempted to give
  41. this new version of MUI Calc a version number beyond 1.3 to stay "ahead"
  42. of MCalc, and to continue avoiding confusion, but I decided that this
  43. would be stupid.
  44.  
  45. 2. What is this RPN stuff anyway?
  46.  
  47. Reverse Polish Notation.  So called because this famous Polish
  48. mathematician (Jan Lukasiewicz, but with a / through the L, so that it
  49. is pronounced something like Wookashye'veech) invented a notation
  50. which requires no parentheses.  He used a kind of prefix notation,
  51. where the operation precedes the operands.  Most calculators in the HP
  52. vein use a postfix notation, hence the "Reverse" part.  (If it weren't
  53. for the HP28 Owner's Manual, I'd never be able to remember this guy's
  54. name.)
  55.  
  56. Therefore, to use the calculator, you enter operands on the stack
  57. and then select the operation.  For instance, 5 ENTER 6 ENTER +
  58. will put 5 on the stack, then 6, and then add them, leaving the
  59. result (11, hopefully) on the stack.
  60.  
  61. 3. OK, so this calculator is sort of like an HP calculator.  How is it
  62. *not* like an HP?
  63.  
  64. Please note that this calculator, like the HP28S and its successors, uses
  65. a strict postfix notation.  Earlier HP calculators used prefix notation
  66. for certain special functions, such as STO.  Unline the HP28S and its
  67. successors, this calculator doesn't offer programmability and non-float
  68. data types.  Go buy an HP48G or GX if you need either of those features,
  69. or buy Maple V.
  70.  
  71. 4. Is there any weird behavior I should know about?
  72.  
  73. Some of the stack operations require multiselection of items; for
  74. other stack operations, this is optional.
  75.  
  76. SWAP requires you to multiselect exactly two elements in the stack
  77. to swap.  You must shift-mouseclick on each of them, since in MUI
  78. applications, the listview gadget makes a distinction between the
  79. "active" item and "selected" items.  (Merely clicking on an item
  80. will only make it active, not selected.)  (Yes, I know, there is an
  81. option available to the programmer to automatically make the active
  82. element selected as well.  I didn't think this was appropriate.)
  83.  
  84. DUP doesn't require you to select an element to duplicate; it defaults
  85. to the bottom element on the stack.  If you do select an element,
  86. though, that one will get duplicated.  Multiselecting several items to
  87. duplicate will work just fine.
  88.  
  89. ROLL takes the "top" element of the stack and rotates it down to the
  90. bottom.
  91.  
  92. Please note that this stack is built by inserting elements at the
  93. physical bottom, meaning that the bottom of the stack is logically
  94. the top.  If this seems confusing, just play with the calculator, all
  95. shall become clear.
  96.  
  97. 5. Can you clarify the logarithmic notation you use?
  98.  
  99. Sure.  There's been a lot of confusion in the math community lately over
  100. what notation to use.  I guess now the standard is "log" to denote the
  101. natural log; subscripts are used for all bases aside from e.  However,
  102. I learned the notation "ln" for natural log early on, and that's what I've
  103. stuck with because it makes a little more sense.  I guess slide rules
  104. and tables of logarithms aren't too hip anymore, so "log" for log base 10
  105. has fallen into disfavor; however, that's the convention I use as well.
  106. As for "lg," that denotes log base 2, which many computer scientists out
  107. there might recognize.  "exp" denotes the exponential, e raised to the x
  108. power.  All other exponential functions, such as 2^x or 10^x, can be done
  109. by entering the arguments onto the stack and using the x^y button.  (Note:
  110. the base is pushed onto the stack first, then the exponent.)
  111.  
  112. 6. Hey!  How come when I try to find 8!, I get 40319.99999206 instead of
  113. 40320?
  114.  
  115. Simple.  The x! function on the calculator is actually computing
  116. Gamma(x + 1).  I suppose I could put in a special case to test for
  117. integer arguments, but this calculator treats everything as floats anyway,
  118. so why give special treatment to pseudo-integers for one special function?
  119. At any rate, x! will overflow the limits of a double precision float
  120. when x > 170, and probably isn't completely reliable for x > 30.  For big
  121. values, you should be computing a function which is actually
  122. log(Gamma(x)), but I haven't implemented that -- this is supposed to be
  123. a desk calculator with some scientific functions.  Well, OK, a lot of
  124. scientific functions.  Just be happy I gave you an x! which works over all
  125. reals (except negative integers).
  126.  
  127. 7. Is this program Shareware or what?
  128.  
  129. This version of MUI Calc is giftware.
  130. Version 1.0 really wasn't worth money whatsoever.  Version 1.25 is much
  131. more cleanly written, has many more features, and to be honest, is
  132. probably far worthier of distribution.  Still, I can't expect people to
  133. pay serious money for it.  So...  Tell you what.  I'd be happy to get
  134. postcards, letters, you name it.  I like hearing from people.
  135.  
  136. A contribution of US$5 (or more, I'm not one to refuse charity) will be
  137. most welcome.  Hey, I'm a starving grad student.  :-)  Please don't send
  138. cash though for obvious reasons.
  139.  
  140. Future versions of MUI Calc will probably be rewritten in C++ to take
  141. advantage of the reuse of code.
  142.  
  143. 8. What's new since version 1.0?
  144.  
  145. Lots of stuff.  The program has been recompiled using the MUI 2.0
  146. includes.  I've improved much of the basic logic of the program, such
  147. as the formatting of numbers being printed on the stack.  I now use a
  148. paging group to swap in sets of buttons which perform different
  149. mathematical functions (trig, log, etc.)  The contents of the stack
  150. can be printed, either to PRT: or to another device or file.  I
  151. stripped out all debugging information, removed code dependent on
  152. stdio, and enabled optimization for size, chopping executable size in
  153. half.  (What a gas, I add more functionality and get a smaller program
  154. in the bargain.)  I now use a custom image for the iconified state.  I
  155. also threw in more sanity checks.  (You can still crash it if you try
  156. hard enough.  I'm not going to tell you how.)  Oh, yes, it auto-detaches
  157. from the CLI now.
  158.  
  159. 9. How do I contact the author?
  160.  
  161. Mail:
  162. Robert Poole
  163. 300 South Street Apt. G5
  164. Vernon, CT 06066
  165. U.S.A.
  166.  
  167. Email:
  168. pooler@rpi.edu
  169.  
  170. 10. Distribution
  171.  
  172. I specifically grant distribution rights to Fred Fish, for inclusion in
  173. his CD-ROM collection.  This package is freely distributable providing
  174. that all files found in this archive are included.  That means the binary
  175. executable muicalc, the documentation (this file), MUI.readme,
  176. and all associated icons and support files.
  177.  
  178. 11. Legal Stuff
  179.  
  180. MUI Calc is Copyright ⌐ 1993, 1994 by Robert Poole, all rights reserved.
  181. MUI is Copyright ⌐ 1993, 1994 Stefan Stuntz.
  182. All other copyrights and trademarks belong to their respective owners.